<?php 

//bajar a una carpeta anterior:
//include '/carpeta/archivo.php';  

//entrar en una carpeta paralela:
//include './nuevo_registro/Asignar_pedido.php';

//Subir a una carpeta hija
//include 'carpeta/archivo.php'; o como en una carpeta paralela

include_once './nuevo_registro/NuevoUsuario.php';
include_once './nuevo_registro/NuevoEmpleado.php';
include_once './nuevo_registro/NuevoUserPc.php';

include_once './eliminar_registro/EliminarUsuario.php';
include_once './eliminar_registro/EliminarEmpleado.php';
include_once './eliminar_registro/EliminarUserPc.php';

//Management System Facade 
// TEST

class SGF{
  
  //	private $Calendario;
 	private $fecha_actual;
 	private $fecha_pedido;
	private $hora_pedido;
	private $usuario;
	private $empleado;
	private $userPc;


	private $gestionUsuario;
	private $gestionEmpleado;
	private $gestionUserPc;

	
//_______________________BUSQUEDA DE DATOS COMUNES______________________
// 	En esta etapa se busca y devuelve toda la informacion que sea comun a cualquier proceso:
// 	- La informacion completa del usuario que solicito el pedido.
	
	public function __construct(){
		echo "Object Management System Facade was created correctly.";
		$this->fecha_actual=date("d/m/Y"); //date("d/m/Y H:i:s");====> 19/04/2004 18:27:34  //no usado por el momento.
	}
	public function get_fecha_actual(){
		return $this->fecha_actual;
	}
	
	public function get_usuario(){
		return $this->usuario;
	}
	
	public function get_empleado(){
		return $this->empleado;
	}
	
	public function get_userPc(){
		return $this->userPc;
	}

	
//_____________________GESTION DE USUARIOS_______________________________

	//_____________________CREAR_______________________
	public function agregarUsuario( $nombre_usuario, $apellido_usuario, $fecha_nacimiento, $dni_usuario, $direccion_usuario){
		$this->gestionUsuario= new NuevoUsuario( $nombre_usuario, $apellido_usuario, $fecha_nacimiento, $dni_usuario, $direccion_usuario);
		$nro_usuario_nuevo=$this->gestionUsuario->get_nro_usuario();
		unset($this->gestionUsuario);
		return "<br>El usuario se creo correctamente! El numero de usuario es: ".$nro_usuario_nuevo;
	}

	public function agregarEmpleado($nombre_empleado, $apellido_empleado, $dni_empleado, $especialidad, $ubicacion_actual){
		$this->gestionEmpleado= new NuevoEmpleado($nombre_empleado, $apellido_empleado, $dni_empleado, $especialidad, $ubicacion_actual);
		$nro_empleado_nuevo=$this->gestionEmpleado->get_nro_empleado();
		unset($this->gestionEmpleado);
		return "<br>El empleado se creo correctamente! El numero de empleado es: ".$nro_empleado_nuevo;
	}

	public function agregarUserPc($nombre_userPc, $apellido_userPc, $dni_userPc, $mail_userPc, $pass_userPc){
		$this->gestionUserPc= new NuevoUserPc($nombre_userPc, $apellido_userPc, $dni_userPc, $mail_userPc, $pass_userPc);
		$nro_userPc_nuevo=$this->gestionUserPc->get_nro_userPc();
		unset($this->gestionUserPc);
		return "<br>El empleado se creo correctamente! El numero de empleado es: ".$nro_userPc_nuevo;
	}

	//_____________________ELIMINAR_______________________


	//___PRIMERA ETAPA DE ELIMINAR USUARIO___
	public function eliminarUsuario($id_busqueda,$tipo_de_dato){ //tipo_de_dato=[nro_usuario/dni_usuario]
		$this->gestionUsuario=new EliminarUsuario($id_busqueda,$tipo_de_dato);
		$this->usuario=$this->gestionUsuario->get_usuario();
	}
	
	//___CONFIRMAR ELIMINAR USUARIO___
	public function confirmarEliminarUsuario(){
		if ($this->usuario){
			$this->gestionUsuario->confirmar();
			$this->vaciarVariables();
			unset($this->gestionUsuario);
			return "<br>Se elimino el usuario";
		}else{
			return "<br>Registro Invalido";
		}
	}

	//___PRIMERA ETAPA DE ELIMINAR EMPLEADO___
	public function eliminarEmpleado($id_busqueda,$tipo_de_dato){//tipo_de_dato=[nro_empleado/dni_empleado]
		$this->gestionEmpleado=new EliminarEmpleado($id_busqueda,$tipo_de_dato);
		$this->empleado=$this->gestionEmpleado->get_empleado();
	}
	
	//___CONFIRMAR ELIMINAR EMPLEADO___
	public function confirmarEliminarEmpleado(){
		if ($this->empleado){
			$this->gestionEmpleado->confirmar();
			$this->vaciarVariables();
			unset($this->gestionEmpleado);
			return "<br>Se elimino el empleado";
		}else{
			return "<br>Registro Invalido";
		}
	}

	//___PRIMERA ETAPA DE ELIMINAR UserPc___
	public function eliminarUserPc($id_busqueda,$tipo_de_dato){//tipo_de_dato=[dni_userPc/nro_userPc]
		$this->gestionUserPc=new EliminarUserPc($id_busqueda,$tipo_de_dato);
		$this->userPc=$this->gestionUserPc->get_userPc();
	}
	
	//___CONFIRMAR ELIMINAR UserPc___
	public function confirmarEliminarUserPc(){
		if ($this->userPc){
			$this->gestionUserPc->confirmar();
			$this->vaciarVariables();
			unset($this->gestionUserPc);
			return "<br>Se elimino el UserPc";
		}else{
			return "<br>Registro Invalido";
		}
	}
	
	private function vaciarVariables(){
		unset($this->usuario);
		unset($this->empleado);
		unset($this->empleados);
		unset($this->fecha_pedido);
		unset($this->hora_pedido);
	}
}

$objeto=new SGF();

echo "<br>";

$request_Usuario = $objeto->agregarUsuario( 'prueba', 'usuario', "1990-05-14", 36395666, 'ayolas 2608, quilmes');
$request_Empleado = $objeto->agregarEmpleado("Prueba", "Empleado", 36395786, "Cardiologo", "ayolas 2608");
$request_UserPc = $objeto->agregarUserPc("Prueba", "UserPc", 36395786, "bay_122pj@hotmail.com", "123456ABCDE");

echo $request_Usuario;
echo $request_Empleado;
echo $request_UserPc;

echo "<br>";

$objeto->eliminarUsuario(7, nro_usuario);
if ($objeto->get_usuario()){
	echo "<br>confirma que desea eliminar el usuario: ".$objeto->get_usuario()->get_nro_usuario()." de la base de datos?";
}else{
	echo "<br> Registro no encontrado";
}
$recuest_delete_usuario= $objeto->confirmarEliminarUsuario();
echo $recuest_delete_usuario;

echo "<br>";

$objeto->eliminarEmpleado(3, nro_empleado);
if ($objeto->get_empleado()){
	echo "<br>confirma que desea eliminar el empleado: ".$objeto->get_empleado()->get_nro_empleado()." de la base de datos?";
}else{
	echo "<br> Registro no encontrado";
}
$recuest_delete_empleado= $objeto->confirmarEliminarEmpleado();
echo $recuest_delete_empleado;

echo "<br>";

$objeto->eliminarUserPc(3, nro_userPc);
if ($objeto->get_userPc()){
	echo "<br>confirma que desea eliminar el userPc: ".$objeto->get_userPc()->get_nro_userPc()." de la base de datos?";
}else{
	echo "<br> Registro no encontrado";
}
$recuest_delete_userPc= $objeto->confirmarEliminarUserPc();
echo $recuest_delete_userPc;

?>

